package com.example.framework.net

import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory

object RetrofitManager {

    private const val BASE_URL = "https://www.wanandroid.com/"

    /*
    构建者模式
    创建retrofit对象， 构建一个网络请求的载体对象，和okhttp构建OkhttpClient对象有一样的意义，
    只不过retrofit在build的时候有非常多的初始化内容，这些内容可以为后面网络请求提供准备，
    如准备 现成转换Executor，Gson convert，RxJavaCallAdapter
     */

    private val retrofit = Retrofit.Builder()
        .baseUrl(BASE_URL)
        .addConverterFactory(GsonConverterFactory.create())
        .build()

    //Retrofit的精髓，为统一配置网络请求完成动态代理的设置
    fun <T> create(serviceClass: Class<T>): T = retrofit.create(serviceClass)
}